import React, { useState, useEffect, useMemo } from 'react';
import {
Home,
BookOpen,
Music,
MessageSquare,
Menu,
X,
Heart,
Send,
Youtube,
ChevronLeft,
ChevronRight,
ChevronUp,
ChevronDown,
FileText,
User,
Shield,
Info,
PlayCircle,
ExternalLink,
Anchor,
Navigation,
Clock,
Car,
MapPin
} from 'lucide-react';
import { initializeApp } from 'firebase/app';
import {
getFirestore,
collection,
addDoc,
onSnapshot,
doc,
updateDoc,
increment,
query
} from 'firebase/firestore';
import {
getAuth,
signInAnonymously,
signInWithCustomToken,
onAuthStateChanged
} from 'firebase/auth';
// --- Firebase Configuration ---
const firebaseConfig = JSON.parse(__firebase_config);
const app = initializeApp(firebaseConfig);
const auth = getAuth(app);
const db = getFirestore(app);
const appId = typeof __app_id !== 'undefined' ? __app_id : 'navy-worship-app-v2';
// --- Footer Component ---
const CopyrightFooter = () => (
);
// --- Worship Schedule Data ---
const NAVY_CHURCHES = [
{ name: "해군본부교회(영외)", pastor: "최태양", time: "1부 09:20\n2부 11:00", shuttle: "X" },
{ name: "해군본부교회(영내)", pastor: "백명규", time: "09:30", shuttle: "O" },
{ name: "해군부산교회", pastor: "이 구", time: "11:30", shuttle: "X" },
{ name: "해군동해교회", pastor: "김영훈", time: "11:00", shuttle: "O" },
{ name: "해군평택교회", pastor: "전이루", time: "11:30", shuttle: "O" },
{ name: "해군인천교회", pastor: "이슬기", time: "11:00", shuttle: "X" },
{ name: "해군목포교회", pastor: "최믿음", time: "11:00", shuttle: "X(해남 및 분청 차량)" },
{ name: "해군포항교회", pastor: "이재광/이세종", time: "11:00", shuttle: "X" },
{ name: "해군제주교회", pastor: "조재영", time: "11:00", shuttle: "O(교회차량)" },
{ name: "해군사관학교교회", pastor: "정상덕/송승규", time: "11:00", shuttle: "X" },
{ name: "해군소망교회", pastor: "전인수", time: "11:00(간부/가족)\n13:30(실무/청년)", shuttle: "X" },
{ name: "해군교육사교회", pastor: "정희찬", time: "09:00(양성)\n13:30(실무병)", shuttle: "O(교회차량)" },
{ name: "해군진해교회", pastor: "이성호", time: "10:30", shuttle: "O(교회차량)" },
{ name: "해군통해교회", pastor: "김상혁", time: "12:00", shuttle: "O(순환버스)" },
{ name: "해군중앙교회", pastor: "임명관", time: "1부 09:00\n2부 11:00", shuttle: "X" },
{ name: "국군수송중앙교회", pastor: "박지혜", time: "11:00", shuttle: "X" },
];
const MARINE_CHURCHES = [
{ name: "해병대중앙교회", pastor: "정기원/김성배", time: "신우 09:30", shuttle: "원거리O/근거리X" },
{ name: "해병대충무교회", pastor: "김바울", time: "가족 11:00", shuttle: "X" },
{ name: "해병대수색상장교회", pastor: "김바울", time: "09:00", shuttle: "X" },
{ name: "해병대2·7여단교회", pastor: "김현수", time: "09:00(충무신우)\n14:00(7여단신우)", shuttle: "X" },
{ name: "해병대3·포여단교회", pastor: "우선구", time: "09:00", shuttle: "X" },
{ name: "해병대문덕교회", pastor: "우선구", time: "10:45", shuttle: "X" },
{ name: "해병대청룡교회", pastor: "김동우", time: "1부 10:00\n2부 12:15", shuttle: "신우:부대/간부:교회" },
{ name: "해병대김포교회", pastor: "김동우", time: "10:00", shuttle: "원거리 O" },
{ name: "해병대강화교회", pastor: "이승범", time: "10:00", shuttle: "원거리 O" },
{ name: "해병대백령교회", pastor: "김세복", time: "10:00", shuttle: "O (09:00)" },
{ name: "해병대제주교회", pastor: "한현성", time: "11:00", shuttle: "X" },
{ name: "해병대교훈단교회", pastor: "김주은", time: "10:00(신우)\n13:30(신병)", shuttle: "X" },
{ name: "해병대연평교회", pastor: "김대은", time: "10:00", shuttle: "O (09:00)" },
];
// --- WORSHIP DATA ---
const WORSHIP_DATA = {
1: {
title: "1월 1주: 하나님 보시기에 좋은 인생",
youtubeId: "GTOe5xJhphw",
bibleRef: "창세기 1:1, 31",
bibleText: `1:1 태초에 하나님이 천지를 창조하시니라
1:31 하나님이 지으신 그 모든 것을 보시니 보시기에 심히 좋았더라 저녁이 되고 아침이 되니 이는 여섯째 날이니라`,
sermon: `성경은 우리 인생과 우리가 살아가는 세상의 시작과 근본을 말씀합니다.
태초에 하나님이 천지를 창조하시니라
하나님께서 천지만물을 창조하셨음이 웅장하게 선포됩니다. 그리고 이 창조의 결과를 창세기 1장 31절은
하나님이 지으신 그 모든 것을 보시니 보시기에 심히 좋았더라
라고 말씀합니다. 하나님이 보시기에 좋았더라는 말씀이 창세기 1장에서 일곱 번 반복됩니다. 하나님께서 창조하신 세상과 인생은 하나님 보시기에 좋았습니다. 새해를 시작하는 해군해병대 모든 장병들이 하나님 보시기에 좋은 인생이 되기를 바랍니다.
창세기 1장이 전하는 하나님 보시기에 좋은 인생은 무엇일까요?
1. 믿음으로 사는 삶입니다. 성경의 첫 장인 창세기 1장은 하나님의 존재를 증명하지 않고, 하나님이 계시다는 것을 전제로 그 하나님이 어떠한 분이신지를 말씀합니다. 하나님을 인정하지 않고는 성경을 제대로 읽을 수 없습니다. 하나님은 어떤 분이십니까? 하나님은 창조자이시며, 주권자이시고, 공급자이십니다. 이처럼 성경이 증언하는 하나님을 굳게 믿으시기 바랍니다.
2. 말씀으로 사는 삶입니다. 하나님은 말씀으로 천지만물을 창조하셨습니다. 성경은 ‘하나님이 이르시되 그대로 되니’라고 말씀합니다. 모든 피조물이 하나님께서 말씀하신 그대로 되었습니다. 온 우주에 어떠한 피조물도 하나님의 말씀을 거부하거나 대적하지 않았습니다. 이것이 바로 하나님의 말씀의 능력과 권세입니다. 하나님의 말씀은 반드시 이루어집니다. 말씀대로 산다는 것은 이처럼 하나님의 말씀에 순종하는 것입니다. 언제 어디서든 하나님의 말씀에 순종하며 사시기 바랍니다.
3. 사명으로 사는 삶입니다. 하나님의 창조의 절정은 인간입니다. 인간만이 유일하게 하나님의 형상대로 지음을 받았습니다. 그리고 하나님은 인간에게만 정복하고 다스릴 수 있는 복을 주셨습니다. 이는 하나님을 대신하여 세상 만물을 관리하는 자로 세우신 것입니다. 하나님은 우리가 하나님께서 창조하신 모든 피조물이 하나님의 창조 목적대로 존재하도록 다스리기를 원하십니다. 이것이 우리를 지으신 하나님의 창조목적, 곧 우리의 사명입니다.
하나님은 우리가 믿음으로, 말씀으로, 사명으로 살아가기를 원하십니다. 믿음과 말씀과 사명으로 하나님 보시기에 좋은 인생과 삶이 되기를 바랍니다.`,
hymnId: "1-1",
hymnUrl: "https://lh3.googleusercontent.com/d/1qipVH8zAg_NltnUxrjL5gRLyvyy0Yy-L",
sharingTopic: "하나님께서 지금 나에게 원하시는 사명은 무엇일까요?"
},
2: {
title: "1월 2주: 내가 그 반석 위, 네 앞에 서 있겠다",
youtubeId: "InySsfz1BeM",
bibleRef: "출애굽기 17:1-7",
bibleText: `17:1 이스라엘 자손의 온 회중이 여호와의 명령대로 신 광야에서 떠나 그 노정대로 행하여 르비딤에 장막을 쳤으나 백성이 마실 물이 없는지라
17:2 백성이 모세와 다투어 이르되 우리에게 물을 주어 마시게 하라 모세가 그들에게 이르되 너희가 어찌하여 나와 다투느냐 너희가 어찌하여 여호와를 시험하느냐
17:3 거기서 백성이 목이 말라 물을 찾으매 그들이 모세에게 대하여 원망하여 이르되 당신이 어찌하여 우리를 애굽에서 인도해 내어서 우리와 우리 자녀와 우리 가축이 목말라 죽게 하느냐
17:4 모세가 여호와께 부르짖어 이르되 내가 이 백성에게 어떻게 하리이까 그들이 조금 있으면 내게 돌을 던지겠나이다
17:5 여호와께서 모세에게 이르시되 백성 앞을 지나가서 이스라엘 장로들을 데리고 나일 강을 치던 네 지팡이를 손에 잡고 가라
17:6 내가 호렙 산에 있는 그 반석 위 거기서 네 앞에 서리니 너는 그 반석을 치라 그것에서 물이 나오리니 백성이 마시리라 모세가 이스라엘 장로들의 목전에서 그대로 행하니라
17:7 그가 그 곳 이름을 맛사 또는 므리바라 불렀으니 이는 이스라엘 자손이 다투었음이요 또는 그들이 여호와를 시험하여 이르기를 여호와께서 우리 중에 계신가 안 계신가 하였음이더라`,
sermon: `새해 첫날과 설 명절에 친척들과 대화를 하다보면 떠올리기 싫은 부끄러운 과거를 마주할 때가 있지요. 이스라엘 자손들은 유월절 마다 조상들의 부끄러운 과거를 반복하여 대면했습니다. 그것은 과거에 지나간 이야기로 끝난 것이 아니라 오늘 자신들의 모습을 비추는 거울이었습니다. 본문은 인간의 실수, 잘못, 연약함을 가감 없이 드러내지만, 인간의 부족함마저도 끌어안고 인도하시는 하나님의 은혜가 더 큼을 가르쳐줍니다.
이스라엘 백성들은 위기를 만나 흔들립니다. (1절) “여호와의 명령대로 신 광야에서 떠나 그 노정대로 행하여 르비딤에 장막을 쳤으나 백성이 마실 물이 없는지라”. 백성들은 모세를 비난합니다. 문제를 해결하라고 강하게 몰아세웁니다. (2절) “우리에게 물을 주어 마시게 하라”. 그리고는 원망하며 책임을 전가합니다. (3절) “당신이 어찌하여 우리를 애굽에서 인도해 내어서 우리와 우리 자녀와 우리 가축이 목말라 죽게 하느냐”. ‘당신 말 듣고 하나님을 따라왔더니, 하나님이 시키는 대로 했더니 다 죽게 생겼으니 책임져!’하는 격앙된 목소리들이 들려옵니다.
모세의 반응을 볼까요? (2절) “너희가 어찌하여 나와 다투느냐 너희가 어찌하여 여호와를 시험하느냐”. 하나님은 바로 앞 장에서 만나를 내려주시는 목적을 이렇게 말씀하셨습니다. (16장 4절) “이같이 하여 그들이 내 율법을 준행하나 아니하나 내가 시험하리라”. 하나님은 믿음으로 따르는 이들을 먹여 살리시고 책임지신다고 하셨습니다만 백성들은 곤경 앞에서 하나님이 해주셨던 모든 일들을 다 잊었습니다. 만나와 메추라기로 먹이신 것(16장), 마라의 쓴물을 단물로 바꾸셨던 것(15장), 홍해를 갈라 구원하셨던 것(14장), 구름기둥과 불기둥으로 인도하셨던 것(13장), 출애굽 사건(12장)은 마실 물이 없는 작금의 문제 앞에서 지나가버린 일, 쓸모없는 일에 불과했습니다.
이것이 오래 전 히브리 민족들만의 문제일까요? 오늘 우리의 삶 또한 위기와 불안의 연속입니다. 문제를 해결하면 새로운 문제가 찾아오며, 삶의 위기는 다채롭고 새로운 얼굴로 예고없이 찾아옵니다. 우리의 믿음은 흔들립니다. 우리의 연약함과 불신은 그야말로 필연입니다. 곤경 앞에서 우리는 원망과 책임전가 대상을 찾곤 합니다. 책임 맡은 자들이나 약자들이 제물이 되기 십상이죠. 결국 믿음을 가지고 산다는 것은 아무리 힘들고 괴로운 상황을 맞이하더라도 타인을 희생양 삼으려는 충동을 다스리는 삶이 아닐까 생각해봅니다.
모세는 원망과 책임전가 대상을 찾는 대신 하나님께 탄원합니다. (4절) “내가 이 백성에게 어떻게 하리이까 그들이 조금 있으면 내게 돌을 던지겠나이다”. 탁월한 지도자 모세도 두려움과 불안을 느낍니다. 광야 한복판에서 그 누가 온 백성과 가축들을 먹일 물을 구할 수 있을까요? 백성들의 원성 어린 요구에 즉각 응답해도 될까말까인 긴급상황에 모세는 아무것도 할 수 없습니다. 지도력과 민심을 잃을 위기입니다. 민족과 공동체의 생존도 위기입니다. ‘하나님의 말씀대로 왔더니 죽게 되었구나’하는 여론 속에서 하나님의 말씀은 계속 백성들을 움직일 수 있을까요? 정말 어떻게 해야 할까요? 아무것도 할 수 없는 모세, 한계 앞에서 넘어진 연약한 한 인간 모세는 유일하게 할 수 있는 일을 합니다. 그는 하나님께 부르짖었습니다. 출애굽기의 말씀 속에 계시된 하나님은 부르짖는 인간의 탄원을 들으시는 분이시니까요. 이집트의 지배자들이 듣지도 않고 눈썹하나 꿈쩍하지 않던 히브리 노예의 탄원을 여호와 하나님이 들으셨습니다. 하나님의 친구 모세는 하나님의 성품을 알고 그분이 들으심을 믿으며 아무것도 할 수 없어진 인간이 유일하게 할 수 있는 일을 한 것입니다.
들으시는 하나님은 모세에게 반응하십니다. (5절) “나일 강을 치던 네 지팡이를 손에 잡고 가라”. 하나님은 ‘지팡이’를 매개 삼아 다가오십니다. 하나님은 이 지팡이를 통하여 모세를 인도해 오셨습니다. 모세가 ‘내 백성을 보내라’는 하나님의 말씀을 도저히 서슬퍼런 파라오의 보좌 앞에서 전할 수 없다고 두려워할 때, 제국의 한복판에서 인간 신인 절대권력자 파라오와 맞설 때에도, 뒤에서는 이집트의 전차부대가 뒤쫓고 앞은 홍해로 가로막힌 진퇴양난의 위기를 맞이할 때에도, 하나님은 이 지팡이를 통해 언제나 모세와 히브리 백성들을 돕고 계셨습니다. 하나님은 지팡이를 손에 잡는 ‘촉감’이 불러일으키는 ‘기억’으로 곤경에 빠진 모세를 일으키셨습니다. 그리고 말씀하십니다. (6절) “내가 호렙 산에 있는 그 반석 위 거기서 네 앞에 서리니 너는 그 반석을 치라 그것에서 물이 나오리니 백성이 마시리라”.
‘반석을 치라 물이 나오리라’는 대목에 먼저 마음이 기울 때가 많겠지만 우리가 의도적으로 주목해야 할 것은 ‘내가 반석 위 거기서 네 앞에 서리라’라는 하나님의 약속입니다. 수원지가 없는 광야 한 가운데 바위에서도, 하나님은 한결같은 모습으로 함께 계리라 말씀하십니다. 침묵하시고 가만히 계시는 것 같았던 이집트의 한복판에서, 막혀버린 홍해 앞에서, 그리고 떨기나무 앞에서도 ‘지금까지 내가 너의 곤경과 한계 앞에서 늘 한결같이 함께했던 것을 믿고 이전에 인도함을 믿고 따랐던 대로 지금도 따라오렴’이라 하나님은 말씀하십니다. ‘내가 언제나 동일하게 너 모세와 함께하고, 이 히브리인들과 함께 하고 있다는 것을 너희에게 보여주겠다’ 말씀하십니다. 반석을 지팡이로 내리치는 행위는 물을 나오게 하는 주술이 아니라, 물 한방울 나올 수 없는 마른 반석 위에 지금 서 계신 하나님을 보고 믿으라는 강력한 시위입니다.
이야기의 결과는 알려드리지 않아도 잘 아시죠? 다만 본문이 이 사건을 어떻게 기록해 남기고 있는지 주목해 보겠습니다. 본문은 ‘그들이 물을 마시고 기뻐했고, 그들을 위기에서 구하신 하나님께 감사하고 하나님의 말씀과 인도하심에 늘 순종했다’라는 기대되는 반응을 기록하지 않았습니다. 대신 오늘의 사건이 일어난 지명의 유래를 설명하며, 이후 말씀을 읽고 듣는 사람으로 하여금 사건의 전말을 기억하게 합니다. (7절) “그가 그 곳 이름을 맛사 또는 므리바라 불렀으니 이는 이스라엘 자손이 다투었음이요 또는 그들이 여호와를 시험하여 이르기를 여호와께서 우리 중에 계신가 안 계신가 하였음이더라”. 명절 때마다 이스라엘 백성들은 조상들의 불신앙을 상기하고 그것이 오늘 그들의 얼굴임을 잊지 말아야 했습니다. 그럼에도 불구하고 하나님은 일관된 인내와 성실로 인도해 오셨다는 것도 잊지 말아야 했습니다.
사랑하는 여러분, 하나님의 말씀을 따르더라도 현실은 힘들 수 있습니다. 믿음을 뒤흔드는 삶의 문제는 늘 있기 마련입니다. 나의 한계 앞에서 아무것도 할 수 없을 때, 유일하게 할 수 있는 일. 들으시는 하나님께 우리의 막막함을 부르짖어 알리시기 바랍니다. 히브리 백성들의 불신, 원망, 분열, 희생양 찾기라는 악하고 추한 상황에서도 바위 위에 서 계신 하나님이 오늘 광야의 바위같은 우리의 현실 속에 서 계심을 믿음의 눈으로 보십시오. 불신과 망각의 순간에도 계속되는 하나님의 은혜와 사랑 그리고 인도하심을 확신하며 어디서든 함께하시는 하나님과 동행하는 복된 삶의 여정을 걸으시길 바랍니다.`,
hymnId: "1-2",
hymnUrl: "https://lh3.googleusercontent.com/d/1AN7WZtcuujodP68ix7eZDEPx3CA0g41t",
sharingTopic: "삶의 위기와 문제 속에서 하나님이 인도해주시고 도와주신 순간들을 떠올려 나누어봅시다."
},
3: {
title: "1월 3주: 승리를 위한 결단",
youtubeId: "X_L461M_7Yg",
bibleRef: "시편 101:1-8",
bibleText: `101:1 내가 인자와 정의를 노래하겠나이다 여호와여 내가 주께 찬양하리이다
101:2 내가 완전한 길을 주목하오리니 주께서 어느 때에나 내게 임하시겠나이까 내가 완전한 마음으로 내 집 안에서 행하리이다
101:3 나는 비천한 것을 내 눈 앞에 두지 아니할 것이요 배교자들의 행위를 내가 미워하오리니 나는 그 어느 것도 붙들지 아니하리이다
101:4 사악한 마음이 내게서 떠날 것이니 악한 일을 내가 알지 아니하리로다
101:5 자기의 이웃을 은밀히 헐뜯는 자를 내가 멸할 것이요 눈이 높고 마음이 오만한 자를 내가 용납하지 아니하리로다
101:6 내 눈이 이 땅의 충성된 자를 살펴 나와 함께 살게 하리니 완전한 길에 행하는 자가 나를 따르리로다
101:7 거짓을 행하는 자는 내 집 안에 거주하지 못하며 거짓말하는 자는 내 목전에 서지 못하리로다
101:8 아침마다 내가 이 땅의 모든 악인을 멸하리니 악을 행하는 자는 여호와의 성에서 다 끊어지리로다`,
sermon: `우리가 살펴본 시편 101편은 우리가 잘 아는 믿음의 사람 다윗이 쓴 시입니다. 특별히 오늘 본문에서는 다윗의 강점이 하나 발견됩니다. 다윗은 단호하게 신앙의 결단을 내리는 사람이었습니다. 이 시를 쓸 때는 다윗이 이미 왕이 된 후였습니다. 왕이 되었다는 것은 모든 것을 자기 마음대로 할 수 있는 위치에 있다는 뜻입니다. 그러나 본문에서 다윗은 신앙의 결단을 단호하게 내리는 것을 볼 수 있습니다. 신앙생활은 신앙의 결단 없이 저절로 되지 않습니다. 우리에게는 어떤 신앙의 결단이 필요합니까?
첫째로, 믿는 자는 하나님을 찬양하며 살겠다는 결단을 내려야 합니다. 1절 말씀을 읽어보겠습니다. “내가 인자와 정의를 노래하겠나이다 여호와여 내가 주께 찬양하리이다”. 다윗은 1절에서 하나님의 사랑과 그의 공의로우심을 찬양하겠다고 결단합니다. 믿는 사람들은 하나님을 찬양하는데 힘을 써야 합니다. 왜 그렇습니까? 사람은 하나님을 찬양하며 살도록 창조되었기 때문입니다. 어떤 물건이든 각각 만들어진 목적이 있습니다. 목적 없이 만들어진 물건은 없습니다. 그런데 하나님께서 인간을 만드실 때에는 하나님을 찬양하며 살도록 만드셨습니다. 그러기에 우리는 하나님을 찬양하며 살아가기를 결단해야 합니다.
다윗도 평생을 하나님을 찬양하며 살기로 결단하였을 때, 그 인생에 감사가 넘쳐났습니다. 하나님이 그의 삶을 책임져주셨기 때문입니다. 부모도 그의 삶을 책임지지 않았습니다. 한 번은 사무엘 선지자가 왕을 세우기 위해서 아버지 이새를 찾아갑니다. 그런데 이새가 어떠했습니까? 다른 아들들은 모두 불러냈지만 다윗만은 아예 부르지 않았습니다. 들에 나가서 혼자 양이나 보게 하였습니다.
그래서 시편 27편 10절 말씀을 보면 나의 부모는 나를 버렸지만 하나님은 그런 자기를 영접하셔서 이스라라엘의 왕으로 삼아 주셨다는 고백이 나옵니다. 그러니 다윗의 삶에 어찌 감사가 나오지 않았겠습니까? 하나님께서는 찬양하는 삶을 통해 우리에게 역사해 주십니다. 마음이 힘드십니까? 찬양하세요. 육체의 병이 있습니까? 하나님을 찬양하십시오. 그러면 하나님은 하나님의 놀라우신 능력으로 여러분의 삶을 풍성하도록 인도해 주실 것입니다.
다윗은 그 비밀을 알고 있었기 때문에 평생에 하나님을 찬양하였습니다. 얼마나 하나님을 진심으로 찬양했던지, 바지가랑이가 내려가는 줄도 모르고 춤을 추며 하나님을 찬양했습니다. 게다가 혼자서 찬양하는 것이 부족해서 찬양단을 만들어서 찬양하도록 할 정도로 하나님을 높이던 사람입니다. 그런 마음을 하나님은 기뻐하셨습니다. 그리고 그를 평생 지켜주셨습니다. 오늘 여러분도 평생 동안 하나님을 찬양하겠다는 신앙의 결단을 통하여, 하나님께서 여러분 인생을 지켜주시는 놀라운 일들이 나타나게 되시기를 바랍니다.
두 번째로, 믿는 자는 선한 것만 보며 살겠다는 결단을 해야 합니다. 3절 말씀을 읽어보겠습니다. “나는 비천한 것을 내 눈 앞에 두지 아니할 것이요 배교자들의 행위를 내가 미워하오리니 나는 그 어느 것도 붙들지 아니하리이다”. 다윗은 3절에서 자기 눈앞에는 악한 것을 두지 않겠다는 결단을 내렸습니다. 우리가 이 세상에서 살면서 “무엇을 보며 사느냐?”가 참 중요합니다. 왜냐하면 “내가 무엇을 보느냐?”가 우리의 마음에 영향을 주기 때문입니다. 그 영향은 우리의 행동 뿐만 아니라 우리의 신앙생활에도 큰 영향을 끼치게 됩니다.
다윗 주변에는 다윗을 도와 협력하는 신실한 자들도 참 많았습니다. 그러나 어떻게 해서라도 다윗을 모함해서 쓰러뜨리려는 악한 사람들도 있었습니다. 이때 다윗은, 자기 주변에 있는 악한 자들을 멀리하겠다고 결단합니다. 물론 다윗이 그들과 손을 잡고 적당히 살았다면 좋은 대우를 받을 수 있었을 것입니다. 그러나 하나님이 원하시는 삶을 살지 못한다는 것을 다윗은 알았습니다. 그래서 단호하게 자기 눈앞에서 악한 일을 하는 자들을 보지 않겠다고 결심한 것입니다.
여러분의 눈앞에는 어떤 것들이 놓여 있습니까? 여러분이 가장 많이 보는 분야는 무엇이고, 자주 만나는 사람들은 어떤 사람입니까? 다른 사람들을 헐뜯고 시기하고 질투하는 사람들은 아닌가요? 하나님을 욕되게 하는 것들은 무엇입니까? 이 시간 다윗처럼 끊어내겠다고 단호하게 결심하십시오. 좋은 것만 보려고 노력해야 합니다. 좋은 일에만 쓰임 받고자 노력해야 합니다. 그러함을 통해 하나님이 기뻐하시는 충성된 일꾼들이 되시기를 바랍니다.
마지막으로, 믿는 자들은 신앙이 좋은 사람과 가까이 하려는 결단을 해야 합니다. 6절 말씀을 같이 읽어보겠습니다. “내 눈이 이 땅의 충성된 자를 살펴 나와 함께 살게 하리니 완전한 길에 행하는 자가 나를 따르리로다”. 다윗은 6절에서, 이렇게 신앙의 결단을 합니다. “내 눈이 충성된 자를 살펴 나와 함께 거하게 하리니.” 우리 속담에, ‘그 어머니를 보면 그 딸을 알 수 있다’라는 말이 있습니다. 딸은 어머니와 가장 가까이에서 직접 보고 배우기 때문에, 어머니를 보면 그 딸이 어떤가를 알 수 있다는 말입니다. 우리가 어떤 사람에 대해 알려고 할 때, 그 사람의 주변에 어떤 친구들이 있는지 보면 그 사람을 평가할 수 있습니다. 그래서 다윗은 충성된 자가 있으면 그들을 찾아 자기와 함께 거하는 가까운 사람으로 만들겠다는 결심을 합니다.
지금 우리의 주변에는 어떤 사람이 있습니까? 다윗을 보면, 그의 옆에는 나단 선지자와 같은 친구가 있었습니다. 나단 선지자는 다윗이 죄를 범했을 때 목숨을 내어놓고 다윗에게 ‘당신이 바로 그런 죄를 지은 사람입니다’라고 단호하게 회개를 촉구했던 충성된 사람이었습니다. 그런 친구가 있었기에 다윗이 회개할 수 있는 기회를 얻게 된 것입니다. 여러분의 인생에도 이런 동반자와 친구가 필요합니다.
그런데 중요한 것은, 다윗은 그런 충성된 친구가 자기에게 찾아올 때까지 기다리고 있지 않았다는 것입니다. 그는 충성된 자를 살펴서 찾아가 자신의 친구로 만드는 적극적인 사람이었습니다. 그러니까 좋은 친구나 충성된 친구가 여러분에게 찾아올 때까지 기다리시기만 해선 안됩니다. 그러면 평생에 한 명도 안 나타날 수도 있습니다. 여러분의 주변에 하나님을 사랑하며 충성하는 사람들이 가득 차도록 여러분이 직접 발로 뛰시기를 바랍니다. 찾아가시기를 바랍니다. 만남을 만드시기를 바랍니다. 이게 바로 다윗의 결단이었습니다. 이게 바로 다윗에게 하나님의 복이 가득한 이유였습니다.`,
hymnId: "1-3",
hymnUrl: "https://lh3.googleusercontent.com/d/1CLRc1qkOCgPfmdd0K6Chmv5DXv-Ibxup",
sharingTopic: "오늘 나에게는 어떤 신앙의 결단이 필요할까요?"
},
4: {
title: "1월 4주: 감사의 삶",
youtubeId: "_4KPHZbLdI4",
bibleRef: "데살로니가전서 5:16-18",
bibleText: `5:16 항상 기뻐하라
5:17 쉬지 말고 기도하라
5:18 범사에 감사하라 이것이 그리스도 예수 안에서 너희를 향하신 하나님의 뜻이니라`,
sermon: `사도 바울은 데살로니가 교인들을 향해 아주 강력하고도 단순한 권면을 합니다. “항상 기뻐하라, 쉬지 말고 기도하라, 범사에 감사하라”. 우리는 이 세 가지가 별개의 명령처럼 들릴 때가 많지만 사실은 하나로 연결되어 있습니다. 기뻐할 수 있는 힘은 기도로부터 오고, 기도의 결론은 결국 감사로 이어지기 때문입니다.
특별히 오늘 우리가 주목하고자 하는 것은 ‘범사에 감사하라’는 말씀입니다. 여기서 ‘범사’라는 단어는 모든 상황(In everything)을 뜻합니다. 즉, 감사는 조건이 아니라 태도입니다. 상황이 좋아서 감사하는 것은 누구나 할 수 있는 일입니다. 그러나 그리스도인은 상황이 어려울 때에도, 내 뜻대로 되지 않을 때에도 감사를 선택하는 사람입니다. 왜냐하면 그 모든 상황 속에 하나님의 주권과 선하신 뜻이 있음을 믿기 때문입니다.
군 복무 중인 우리 장병 여러분, 때로는 좁은 함정 안에서, 고립된 격오지에서 마음이 답답하고 원망이 생길 때가 있을 것입니다. 그러나 그 순간에 감사의 제목을 찾아보십시오. 건강하게 숨 쉬고 있음에 감사하고, 곁에 있는 전우와 함께할 수 있음에 감사하며, 무엇보다 나를 구원하시고 인도하시는 하나님이 지금 이곳에 함께 계심에 감사하십시오. 감사는 불평을 몰아내고 우리 마음을 평안으로 채우는 강력한 무기입니다. 오늘 하루, 하나님의 뜻인 ‘감사의 삶’을 실천하며 승리하는 여러분이 되시기를 축복합니다.`,
hymnId: "1-4",
hymnUrl: "https://lh3.googleusercontent.com/d/1fIfyPL1MbuzGS3jcyK2D2txrKnxVzOhY",
sharingTopic: "오늘 내게 주어진 환경 속에서 하나님이 깨닫게 해주시는 감사의 내용은 무엇입니까?"
},
6: { // 2월 1주
title: "2월 1주: 속사람의 변화",
youtubeId: "3w_lQGLrarc",
bibleRef: "사도행전 11:1-10",
bibleText: `11:1 유대에 있는 사도들과 형제들이 이방인들도 하나님의 말씀을 받았다 함을 들었더니
11:2 베드로가 예루살렘에 올라갔을 때에 할례자들이 비난하여
11:3 이르되 네가 무할례자의 집에 들어가 함께 먹었다 하니
11:4 베드로가 그들에게 이 일을 차례로 설명하여
11:5 이르되 내가 욥바 성에서 기도할 때에 황홀한 중에 환상을 보니 큰 보자기 같은 그릇이 네 귀에 매여 하늘로부터 내리어 내 앞까지 오거늘
11:6 이것을 주목하여 보니 땅에 네 발 가진 것과 들짐승과 기는 것과 공중에 나는 것들이 보이더라
11:7 또 들으니 소리 있어 내게 이르되 베드로야 일어나 잡아 먹으라 하거늘
11:8 내가 이르되 주님 그럴 수 없나이다 속되거나 깨끗하지 아니한 것은 결코 내 입에 들어간 일이 없나이다 하니
11:9 또 하늘로부터 두 번째 소리 있어 내게 이르되 하나님이 깨끗하게 하신 것을 네가 속되다고 하지 말라 하더라
11:10 이런 일이 세 번 있은 후에 모든 것이 다시 하늘로 끌려 올라가더라`,
sermon: `배드민턴 선수인 안세영 선수는 세계랭킹 1위에 올라와 있습니다. 그렇게까지 할 수 있었던 이유는 특별한 훈련 때문이라고 합니다. 원래 이 선수는 수비가 특기여서 상대적으로 공격이 약했다고 하지요. 그래서 공격 타법을 변화시기기 위해 겨드랑이를 충분히 띄워 서 스윙하는 특별 훈련을 했다고 합니다. 세계 정상급 선수들의 훈련 시간은 상상을 초월합니다. 그런 훈련을 통해 체득된 타법을 바꾸는 것은 결코 쉽지 않았을 것입니다. 그러나 안 선수는 이를 해내었고 세계 정상에 올랐습니다. 오늘 말씀도 훈련과 관련된 말씀입니다. 성령님께서 어떻게 하나님의 사람을 고치시고 새롭게 세워가시는지를 살펴보겠습니다.
유대인이었던 베드로가 율법을 어기면서까지 이방인 고넬료 집을 찾아가고 고넬료와 그 일행에게 복음을 전했던 것은 하나님의 명령이 있었기 때문입니다. 또한 고넬료 일행에게 베드로가 세례까지 베풀었던 것은 성령님께서 그들에게 친히 임하시는 것을 자신의 눈으로 목격했기 때문입니다. 평소에 인간으로 취급조차 하지 않았던 이방인 역시 예수 그리스도 안에서 자신과 똑같은 하나님의 자녀임을 확인합니다. 이후 베드로는 그들과 며칠씩 더 머물면서 음식을 나누며 교제합니다. 그 모든 일을 기꺼이 행한 것은 그것이 하나님의 뜻이었기 때문입니다.
그러나 베드로는 초대교회의 본거지인 예루살렘에 귀환했을 때 혹독한 비난을 받습니다. 할례자들이라 불리는 유대 그리스도인들이 베드로를 집요하게 비난합니다. 오직 하나님의 명령에 순종하기 위해 자신도 하기 어려운 일을 하고 왔는데, 동료들이 이러한 비판을 했을 때 베드로는 참 힘들었을 것입니다.
본래 베드로는 그 성미가 매우 급하고 변덕스러웠습니다. 예수님으로부터 천국의 열쇠를 주겠다는 극찬을 받았던 사람도 베드로고 그 직후에 예수님으로부터 사탄이라고 질타당했던 사람도 베드로였습니다. 대제사장이 보낸 무리가 겟세마네에서 예수님을 끌고 가려고 했을 때, 무리의 선두에 있던 말고의 귀를 칼로 베어버린 사람도 베드로였습니다. 이 세상 사람들이 주님을 배신해도 자신만은 끝까지 따르겠다고 호언장담했던 사람도 베드로였고 바로 그날 밤에 주님을 세 번이나 부인했던 사람도 베드로였습니다. 이 모든 것은 불같이 급하고 변덕스러운 그의 성격 탓이었습니다. 그런 베드로라면 선한 일을 한 자신에게 집요하게 비난하는 사람들 앞에서 불처럼 화를 내는 것이 자연스러웠을 것입니다.
그러나 오늘의 본문은 우리의 예상과는 전혀 다른 사실을 전해 주고 있습니다. 본문 2절에서 4절을 보시겠습니다. “베드로가 예루살렘에 올라갔을 때에 할례자들이 비난하여 이르되 네가 무할례자의 집에 들어가 함께 먹었다 하니 베드로가 그들에게 이 일을 차례로 설명하여”. 베드로는 할례자들이 집요하게 비난을 퍼붓는다고 해서 그들과 똑같은 방식으로 대응하지 않았습니다. 베드로는 자초지종을 상세하게 설명해 주었습니다. 자신이 왜 이방인인 가이사랴의 고넬료 집을 찾아갔는지 차례대로 온 정성을 다해 설명했습니다. 감정이 상해서 대충 설명하지 않고 자신의 경험을 차근차근 설명했습니다.
동료들에게 부당한 대우를 받았던 베드로이지만, 예전의 모습과는 전혀 다른 모습을 보여 주고 있습니다. 어제라면 싫어했을 일을 오늘 베드로는 기꺼이 행하고 있습니다. 그래서 불같은 성미, 변덕스러운 성품을 지닌 어제의 베드로는 더 이상 찾아볼 수가 없습니다. 성숙한 모습으로 자신을 비난하는 사람들에게 화내지 않고, 차례대로 설명했을 때 어떤 결과가 나오게 되었는지는 본문 18절이 전해주고 있습니다. “그들이 이 말을 듣고 잠잠하여 하나님께 영광을 돌려 이르되 그러면 하나님께서 이방인에게도 생명 얻는 회개를 주셨도다 하니라”. 동료들은 이방인들에게 일어난 그 이야기를 들으며 하나님께 영광을 올려드립니다. 하나님을 찬양합니다. 만약 베드로가 성질대로 동료들을 대했으면 이러한 결과를 보지 못 했을 것입니다. 갈릴리 어부 시절 베드로를 떠올려 본다면 이는 엄청난 변화입니다.
베드로는 어떻게 이렇게 성숙하게 된 것입니까? 베드로만의 노력 때문일까요? 물론 베드로의 수고를 가벼이 평가해서는 안 될 것입니다. 그러나 가장 중요한 요소가 있습니다. 베드로의 성장과 성숙에는 분명한 이유가 있습니다. 바로 성령님의 인도하심과 성령님의 훈련입니다. 베드로가 이방인인 고넬료 무리를 만나게 된 이유가 무엇입니까? 베드로가 다락에 올라가서 기도하는데 하나님께서 환상을 보여주십니다. 하늘에서 그릇이 하나 내려오는데 큰 보자기 같았습니다. 네 귀에 끈이 달려서 땅에 내려졌습니다. 보자기 안에는 네 발 달린 짐승과 기는 것, 공중을 나는 것들이 있었습니다. 이때 음성이 들렸습니다. “베드로야 일어나 잡아 먹어라”. 베드로가 말하기를 “주여 그럴 수 없나이다 속되고 깨끗하지 아니한 것을 내가 결코 먹지 아니하였나이다”라고 합니다. 베드로의 이야기를 들으시고 하나님은 다시 음성을 들려주십니다. “하나님께서 깨끗하게 하신 것을 네가 속되다 하지 말라”. 이런 일이 세 번 있은 후 그 그릇이 곧 하늘로 올라가 버렸습니다.
이 환상의 의미가 무엇인지 알 수 없어서 고개를 갸우뚱거리며 ‘이상하다’ 생각하고 있는 그 때에 고넬료가 보낸 사람들이 베드로 집 앞에 도착합니다. 베드로가 어리둥절해 있을 때 성령님의 음성이 들렸습니다. “두 사람이 너를 찾으니 일어나 내려가 의심하지 말고 함께 가라 내가 그들을 보내었느니라”. 베드로는 다락에서 내려가 그 사람들을 만나 그들의 이야기를 듣습니다. 그리고 그들과 함께 가이사랴로 떠납니다. 평소 같았으면 하지 못했던 일을 해낼 수 있었던 이유는 환상을 보았고, 또 하나님이 보낸 사람들을 만났기 때문입니다. 베드로가 보았던 환상이 베드로가 노력해서 볼 수 있는 것입니까? 그에게 찾아왔던 사람들이 베드로가 계획해서 오게 만든 것입니까? 아닙니다. 하나님의 훈련과 성령님의 인도하심입니다.
환상, 꿈과 같은 것은 우리의 의식의 영역이 아니라 우리 무의식의 영역입니다. 우리의 무의식은 우리 스스로 어찌할 수 없는 영역입니다. 그런데 놀랍게도 하나님께서는 그 부분을 바꾸십니다. 하나님은 베드로가 가지고 있던 선입견, 그 뿌리 깊은 무의식을 만지셨습니다. 환상을 보게 하신 하나님께서 사람을 보내어 구체적인 행동을 안내하십니다. 유명한 심리학자 칼 융에게 상담을 받았던 젊은 여성이 있었습니다. 그 여성은 교육 수준이 굉장히 높고 합리적인 사람이었습니다. 너무 완고한 합리주의적 경향 때문에 그녀의 마음을 다루는 것이 쉽지가 않았습니다. 이러한 모습을 조금 완화해 보려고 노력해도 소용이 없었습니다.
어느날 융이 창을 등진 채 그녀와 마주 앉아서 이야기를 듣고 있었습니다. 그녀는 어젯밤 아주 인상적인 꿈을 꾸었다고 했습니다. 누군가가 그녀에게 황금풍뎅이를 주었는데 아주 값비싼 보석으로 된 것이었다고 합니다. 그녀가 계속 꿈 얘기를 하고 있는데, 칼 융의 등 뒤에서 무언가가 유리창을 두드리는 소리가 났습니다. 돌아보았더니 어떤 커다란 벌레 한 마리가 방 안으로 들어오려고 바깥에서 유리를 두드리고 있는 것이었습니다. 융은 유리창을 열고는 날아들어 오는 벌레를 잡았습니다. 그것은 풍뎅이었는데 초록과 황금색이 뒤섞여 황금풍뎅이처럼 보였습니다. 융이 그 환자에게 건네주며 이렇게 말했습니다. “여기 그 황금풍뎅이가 있어요.” 이 사건을 경험한 그녀는 완전히 태도가 바뀝니다. 융의 표현대로라면 “그녀의 얼음장 같은 저항이 무너졌습니다”. 이후 치료는 만족스러운 결과를 얻었다고 합니다.
우리가 설교를 수없이 들어도 변하지 않는 이유가 무엇입니까? 말씀을 보고 기도를 하고 예배를 참여해도 바뀌지 않는 이유가 무엇입니까? 우리의 무의식, 우리의 속사람이 바뀌지 않았기 때문입니다. 베드로는 이 속사람이 바뀌는 경험을 했습니다. 하나님은 그에게 환상을 보게 하셨습니다. 그리고 그의 선입견을 바꾸셨습니다. 하나님께서 그의 깊은 마음에 개입하신 것입니다. 성령님의 인도하심으로 베드로는 성장하고 성숙했습니다. 이것이야말로 사람이 근원적으로 변화하는 핵심 요소입니다. 우리에게도 이런 하나님의 은혜가 임할 수 있기를 원합니다. 우리가 군생활을 하는 가운데 성령님의 인도하심으로 우리 자신이 성장하고 성숙하였다는 고백을 할 수 있기를 원합니다. 우리의 깊은 곳까지 만지시고, 사람을 붙여주심으로 참된 변화를 경험하시길 주님의 이름으로 축복합니다.`,
hymnId: "2-1",
hymnUrl: "https://lh3.googleusercontent.com/d/1yWrmG077fhvuw4ZhgEIMZy9bqqrUJPYI",
sharingTopic: "내 안에 변화되길 원하는 요소가 있습니까? 그 부분을 하나님께서 변화시켜주고 계심을 느끼십니까?"
}
};
// --- WEEKS 목록 생성 (1월 5주 삭제 로직) ---
const WEEKS = [];
let globalWeekId = 0;
for (let m = 1; m <= 12; m++) {
const weeksInMonth = (m === 1 || m === 3 || m === 5 || m === 7 || m === 8 || m === 10 || m === 12) ? 5 : 4;
for (let w = 1; w <= weeksInMonth; w++) {
globalWeekId++;
if (m === 1 && w === 5) continue; // 1월 5주 삭제
if (globalWeekId <= 54) {
WEEKS.push({ id: globalWeekId, label: `${m}월 ${w}주`, month: m, week: w });
}
}
}
const getCurrentWeekNumber = () => {
const now = new Date();
const year = now.getFullYear();
let firstSunday = new Date(year, 0, 1);
while (firstSunday.getDay() !== 0) { firstSunday.setDate(firstSunday.getDate() + 1); }
const targetSunday = new Date(now);
if (now.getDay() !== 0) {
targetSunday.setDate(now.getDate() + (7 - now.getDay()));
}
if (targetSunday < firstSunday) return 1;
const diffInMs = targetSunday.getTime() - firstSunday.getTime();
const diffInWeeks = Math.floor(diffInMs / (1000 * 60 * 60 * 24 * 7));
return Math.min(Math.max(diffInWeeks + 1, 1), 54);
};
const App = () => {
const [showSplash, setShowSplash] = useState(true);
const [currentWeek, setCurrentWeek] = useState(getCurrentWeekNumber());
const [activeTab, setActiveTab] = useState('bible');
const [isMenuOpen, setIsMenuOpen] = useState(false);
const [isVideoVisible, setIsVideoVisible] = useState(true);
const [user, setUser] = useState(null);
const [prayers, setPrayers] = useState([]);
const [newPrayer, setNewPrayer] = useState('');
const [unitName, setUnitName] = useState('');
const [userName, setUserName] = useState('');
const [isAnonymous, setIsAnonymous] = useState(false);
const [isLoading, setIsLoading] = useState(true);
useEffect(() => {
const timer = setTimeout(() => setShowSplash(false), 5000);
return () => clearTimeout(timer);
}, []);
useEffect(() => {
const initAuth = async () => {
try {
if (typeof __initial_auth_token !== 'undefined' && __initial_auth_token) {
await signInWithCustomToken(auth, __initial_auth_token);
} else {
await signInAnonymously(auth);
}
} catch (error) { console.error("Auth failed:", error); }
finally { setIsLoading(false); }
};
initAuth();
return onAuthStateChanged(auth, setUser);
}, []);
useEffect(() => {
if (!user) return;
const prayersRef = collection(db, 'artifacts', appId, 'public', 'data', `sharing_week_${currentWeek}`);
const unsubscribe = onSnapshot(prayersRef,
(snapshot) => {
const docs = snapshot.docs.map(doc => ({ id: doc.id, ...doc.data() }));
setPrayers(docs.sort((a, b) => (b.timestamp || 0) - (a.timestamp || 0)));
},
(err) => console.error("Firestore error:", err)
);
return () => unsubscribe();
}, [user, currentWeek]);
const handlePostPrayer = async () => {
if (!newPrayer.trim() || !user) return;
const finalName = isAnonymous ? "익명" : (userName.trim() || "무명");
const finalUnit = isAnonymous ? "" : unitName.trim();
const authorLabel = isAnonymous ? "익명" : (finalUnit ? `${finalUnit} ${finalName}` : finalName);
try {
await addDoc(collection(db, 'artifacts', appId, 'public', 'data', `sharing_week_${currentWeek}`), {
text: newPrayer,
uid: user.uid,
unit: finalUnit,
name: finalName,
isAnonymous,
likes: 0,
timestamp: Date.now(),
author: authorLabel
});
setNewPrayer('');
} catch (e) { console.error("Error adding post:", e); }
};
const handleLike = async (id) => {
if (!user) return;
try {
const docRef = doc(db, 'artifacts', appId, 'public', 'data', `sharing_week_${currentWeek}`, id);
await updateDoc(docRef, { likes: increment(1) });
} catch (e) { console.error("Error updating likes:", e); }
};
const currentData = useMemo(() => WORSHIP_DATA[currentWeek] || {
title: `${WEEKS.find(w => w.id === currentWeek)?.label || '준비 중인'} 예배`,
youtubeId: "",
bibleRef: "본문 준비 중",
bibleText: "해당 주차의 성경 본문이 아직 업데이트되지 않았습니다.",
sermon: "해당 주차의 설교문 전문이 준비 중입니다.",
sharingTopic: "오늘 예배를 통해 느낀 점을 자유롭게 나누어 주세요."
}, [currentWeek]);
if (isLoading) {
return (